#include <REGX52.H>

// 定义DU和WE的特殊位变量
sbit DU = P2^6;
sbit WE = P2^7;

// 定义一个延迟函数
void delay(int x) {
    unsigned int i;
    for(i = x; i > 0; i--);  // 简单的延迟循环
}

void main() {
    // 配置DU引脚为高电平以启用数据传输
    DU = 1;
    P0 = 0x3F;  // 发送数据到P0端口（显示‘0’）
    delay(50000);  // 等待一段时间
    DU = 0;  // 禁用数据传输

    // 配置WE引脚为高电平以启用写入
    WE = 1;
    P0 = 0x00;  // 清空P0端口
    WE = 0;  // 禁用写入

    // 重复上述步骤以显示不同的数字（0-9）
    DU = 1;
    P0 = 0x06;  // 显示‘1’
    delay(50000);
    DU = 0;
    WE = 1;
    P0 = 0x00;
    WE = 0;

    DU = 1;
    P0 = 0x5B;  // 显示‘2’
    delay(50000);
    DU = 0;
    WE = 1;
    P0 = 0x00;
    WE = 0;

    DU = 1;
    P0 = 0x4F;  // 显示‘3’
    delay(50000);
    DU = 0;
    WE = 1;
    P0 = 0x00;
    WE = 0;

    DU = 1;
    P0 = 0x66;  // 显示‘4’
    delay(50000);
    DU = 0;
    WE = 1;
    P0 = 0x00;
    WE = 0;

    DU = 1;
    P0 = 0x6D;  // 显示‘5’
    delay(50000);
    DU = 0;
    WE = 1;
    P0 = 0x00;
    WE = 0;

    DU = 1;
    P0 = 0x7D;  // 显示‘6’
    delay(50000);
    DU = 0;
    WE = 1;
    P0 = 0x00;
    WE = 0;

    DU = 1;
    P0 = 0x07;  // 显示‘7’
    delay(50000);
    DU = 0;
    WE = 1;
    P0 = 0x00;
    WE = 0;

    DU = 1;
    P0 = 0x7F;  // 显示‘8’
    delay(50000);
    DU = 0;
    WE = 1;
    P0 = 0x00;
    WE = 0;

    DU = 1;
    P0 = 0x6F;  // 显示‘9’
    delay(50000);
    DU = 0;
    WE = 1;
    P0 = 0x00;
    WE = 0;
}
